#ifndef BINARYFILEUTIL_H
#define BINARYFILEUTIL_H

#include <QObject>
#include <QFile>
#include <QByteArray>
#include <QDebug>
//读写二进制文件
class BinaryFileUtil : public QObject
{
    Q_OBJECT

public:
    explicit BinaryFileUtil(const QString &filePath, QObject *parent = nullptr);

    // --- 写入 ---
    bool writeBinary(const QByteArray &data, bool append = true);

    // --- 读取 ---
    QByteArray readBytes(qint64 length);                     // 读取指定长度
    QByteArray readUntilByte(char stopByte);                 // 读取到指定字节为止（包括该字节）
    void resetReadPos();                                     // 重置读取位置
    qint64 currentPos() const;                               // 当前索引位置
    void setReadPos(qint64 pos);                             // 设置读取位置

private:
    QString m_filePath;
    QFile m_file;
    qint64 m_lastPos = 0;   // 记录上次读取位置
};

#endif // BINARYFILEUTIL_H
